Problem mit if Schleife und Array

Ken89

Mitglied
Hallo Liebe Coder ;)

ich befasse mich seit ca. einem Jahr mit PHP, habe davor in der Schule C++ gelernt.
Warscheinlich wird meine Frage für euch ein Spezialisten kein Problem sein ;)

Zu meinm Problem:

Ich habe aus einer SQL-DB Datensätze in ein Array ausgelesen. Nun möchte ich diese Datensätze aus dem Array mit einer zuvor gespeicherten Variable abgleichen. Sollte der Inhalt der Variablen schon mal in einem der Arrays vorkommen, so soll die Variable in die SQL-DB hinzugefügt werden (soweit ists mir klar). Aber wie mach ich das nun, damit nicht in jedem durchlauf meiner while/for Schleife die Variable zur Datenbank hinzugefügt wird, sofern diese nicht dem Ihnalt des Array entspricht

Ich wäre euch sehr dankbar, wenn ihr mir helfen könntet :)

Gruß Ken ;)
 
so sieht nun mein Code aus:

PHP:
for($i=0;$i<10;$i++) // for-schleife
  {
    if($vorschlag == $row[i]) // wenn der vorschlag genau dem inhalt des Arrays entspricht
    {
      echo "Vorschlag existiert schon^^";
    }
    else
    {
      echo "bereit zum eintragen^^";
    }
  }

allerdings bekomme ich nun auch jedes mal wenn $vorschlag nicht gleich dem array ist die meldung "bereit zum eintragen^^". was nicht sinn und zweck ist, ich möchte ja meine daten nicht 10 mal in meine sql db eintragen sondern nur einmal wenn der vorschlag noch nicht existiert ^^
 
Überprüfe es mit der funktion in_array() z.B.

Warscheinlich würde ich an deiner Stelle dies aber von der Datenbank machen lassen und schauen ob die Variable schon in der DB vorhanden ist und wenn nicht den eintrag vollziehen.

ODER Du machst in der Datenbank die Spalte UNIQE und machst einfach inserts, wenn es diesen eintrag schon gibt, macht die DB ihn nicht.
 
Überprüfe es mit der funktion in_array() z.B.

Warscheinlich würde ich an deiner Stelle dies aber von der Datenbank machen lassen und schauen ob die Variable schon in der DB vorhanden ist und wenn nicht den eintrag vollziehen.

ODER Du machst in der Datenbank die Spalte UNIQE und machst einfach inserts, wenn es diesen eintrag schon gibt, macht die DB ihn nicht.

wie kann ich das von der db überprüfenlasse :confused:

kannst mir bitte n bisschen auf die sprünge helfen :)
 
Mir ist zwar nicht klar was dein Vergleich bezwecken soll.
Du kanst das so schreiben dann gibt er immer richtig aus.
PHP:
for($i=0;$i<10;$i++) // for-schleife 
  { 
    if($vorschlag != $row[i]) // wenn der vorschlag nicht genau dem inhalt des Arrays entspricht 
    { 
      echo "bereit zum eintragen^^";
    } 
    else 
    { 
       echo "Vorschlag existiert schon^^"; 
    } 
  }

Mfg Splasch
 
zb so :

PHP:
if ( mysql_query("SELECT  * FROM vs_pers".$vn."_modules Where activation = '".$vorschlag."'") ) {
    echo 'Hier der code wenn gewünscheter eintrag gefunden';  
} 
else {
    echo 'Hier der code wenn gewünscheter eintrag nicht gefunden';  
}

So ungefähr sollte des aussehen.

Hat einafch den Vorteil das du nicht die ganze dbtabelle in ein array quetschen musst, sondern nur geguckt wird ob ein Eintrag mit gewünschtem Ergebnis gefunden wurde oder nicht. Wenn die Datenbanktabelle grösser ist musst du unter umständen ein risiges array durchsuchen , was die Performance unnötig belastet.
 
Zuletzt bearbeitet:
@splasch: trotzdem hätte ich dann in meiner sql db 10 einträge ^^ (beispiel: du hast ne datenbank, mit künstler bsp. musiker, und jeder kann n namen eines neuen musikers hinzufügen, da willst du dann auch keine doppelt haben oder

@bluex: vielen dank schon mal, aber was bedeutet das .$vn ?
 
ahhh ja sorry des steht für ne installations nummer ... des kannst weg klassen hatte die mySQL abfrage eben nur fix aus nem script kopiert..... :)
 
so ich meld mich nochmal, mein Problem ist immer noch, das ich die gewünschte sql query mehrmals eingetragen bekomme, da ich mehrere datensätze überprüfe
bsp:
PHP:
for($i=0;$i<10;$i++)
{
  if($i = 5) echo "nicht eintragen !!";
else{
echo "eintragen";
}
}

nun bekomme ich jedoch immer das Problem das ich 9 gleiche Datensätze in meiner DB drin hab :(

bitte nochmals um hilfe

dankeschön :)
 
Zurück