Ergebnis 1 bis 10 von 10

Thema: Datenstze auslesen, berprfen und ndern

  1. #1
    Monarch
    Gast

    Standard Datenstze auslesen, berprfen und ndern

    Hiho

    Hoffe einer von euch kann mir weiter helfen.

    Ein Photoalbum php script hat in meine datenbank die ganzen alben eingetragen.
    In der Tabelle gibt es eine Spalte die nennt sich album_id

    Ich mchte jede album ID auslesen, berprfen ob sie 3 stellig ist und falls nicht soll er vorne eine 0 anhngen. dann nochmals berprfen ob 3 stellig. falls nein wieder eine 0 ansonsten die nchste ID nehmen und das selbe tun.

    Ist das in einem php Script zu ermglichen?


    Oder kann mir jemand sagen wie ich eine gute anordnung hinbekommen wenn die ID's nach der er ordnen soll mal 1stellig, mal 2stellig und mal 3stellig sind?
    im moment ordnet er alles von 1-10, dann 110, 111 und so weiter und macht dann erst mit den 20er weiter.
    Mache es zur zeit ber den Befehl ORDER BY album_id aber das scheint mir nicht das wahre zu sein. Welche alternativen gibt es?

    MfG und schonmal vielen lieben dank
    der Monarch
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist lter als 90 Tage. Die darin enthaltenen Informationen sind mglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beitrge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hallo.
    ja das ist mglich. probiers mal mit diesem code:

    Code:
    $selAlbumId = "SELECT `album_id` FROM `alben`";
    $getAlbumId = mysql_query($selAlbumId);
    
    while ($row = mysql_fetch_row($getAlbumId)) {
      if (str_len($row['album_id']) != 3) {
        $newId = "0".$row['album_id'];
        $updAlbumId = "UPDATE `alben` SET `album_id` = '$newId' WHERE `album_id` = ".$row['album_id']."";
        mysql_query($updAlbumId);
      }
    }
    ist halt nur pseudocode - habs nicht getestet. sollte aber zu schaffen sein mit meinem ansatz.
    man knnte es natrlich mit functions() sauberer machen aber das reicht ja. wenn es nach dem ersten
    durchgang immer noch id's gibt die nicht 3stellig sind lsst du das script einfach nochmal laufen.

    achja - nchstes mal vorher berlegen wie du es mit den id's machen willst

    so long

  3. #3
    Monarch
    Gast

    Standard

    vielen dank fr die schnelle antwort

    Hab das Photalbum script nicht ausgewhlt. die site ist von einem kumpel. Er benutz die Photogallery von php-fusion. diese ist offensichtlich nicht fr mehr als 100 alben geeignet

  4. #4
    Monarch
    Gast

    Standard

    <?php
    include 'config.php';
    error_reporting(E_ALL);
    $db_link = mysql_connect($db_host, $db_user, $db_pass);

    if(mysql_select_db($db_name)) {
    } else {

    echo "Datenbank ".$db_name." wurde nicht gefunden";

    }
    echo "Die Datenbank ".$db_name." wurde ausgewhlt";


    $selAlbumId = "SELECT `album_id` FROM 'fusion_photo_albums'";
    $getAlbumId = mysql_query($selAlbumId);

    while ($row = mysql_fetch_row($getAlbumId)) {
    if (str_len($row['album_id']) != 3) {
    $newId = "0".$row['album_id'];
    $updAlbumId = "UPDATE 'fusion_photo_albums' SET `album_id` = '$newId' WHERE `album_id` = ".$row['album_id']."";
    mysql_query($updAlbumId);
    }
    }
    ?>
    so sieht dat script zur zeit aus. zur datenbank connectet er.
    danach kommt jedoch ein:
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /www/htdocs/hhstamm/php-files/test.php on line 18

    betrifft also diese zeile:
    while ($row = mysql_fetch_row($getAlbumId)) {

    laut google ist das leider ein sehr allgemeiner fehler und kann soziemlich alles bedeuten...

    hab auch schon versucht den tabellen prefix wegzulassen weil ich dachte er findet die tabelle nicht, aber das ist leider auch nicht der fall

    wo liegt bei denkfehler?

  5. #5
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beitrge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    bei solchen fehler stimmt meist was am sql nicht.

    Code:
    $selAlbumId = "SELECT `album_id` FROM 'fusion_photo_albums'";
    ist falsch - fusion_photo_albums ist ja die tabelle und nicht ein wert - wird also nicht mit '' eingebaut sondern ohne hochkomma's oder mit ``

    also so:

    Code:
    $selAlbumId = "SELECT `album_id` FROM `fusion_photo_albums`";
    viel spass

  6. #6
    Monarch
    Gast

    Standard

    hehe manchmal sind es wirklich die kleinen dinge ^^
    da wr ich glaube, nie drauf gekommen

    aber nun weiss er nichts mit $row['album_id'] anzufangen
    Undefined index: album_id in /www/htdocs/hhstamm/php-files/test.php on line 20

    betrifft diese 3 zeilen:
    if (strlen($row['album_id']) != 3) {
    $newId = "0".$row['album_id'];
    $updAlbumId = "UPDATE 'fusion_photo_albums' SET `album_id` = '$newId' WHERE `album_id` = ".$row['album_id']."";
    habe in der db nachgeschaut. tabelle heisst fusion_photo_albums und die spalte heisst album_id. Das stimmt also.
    Verstehe daher nicht warum er album_id nicht kennt... eintrge sind vorhanden

    Da vorher das problem einfach nur bei falschen anfhrungszeichen lag hab ich auch hier alles durchprobiert. von ' ber ` und bis zu ".
    bringt entweder ganz andere fehler oder eben wieder die selben.

    wenn ich allerdings das .$row[] entfernen arbeitet er das script durch ohne einen fehler auszugeben. allerdings ist in der db kein eintrag gendert worden.

    wie man vlt. merkt hab ich noch nicht so viel ahnung von php, beschftige mich erst seit ein paar wochen damit ^^

    aber so wie ich das verstehe wird doch in zeile
    while ($row = mysql_fetch_row($getAlbumId)) {
    festgelegt das die variable $row das umgedrehte ergebnis von $getAlbumId ist.
    dachte mir deshalb das ein $row['album_id'] dann ja doppelt gemoppelt ist, da row ja schon mit der album_id definiert wurde. oder versteht ich da was falsche

    MfG und vielen dank fr deine Geduld mit mir
    der Monarch

  7. #7
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beitrge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    probiers mal so:

    Code:
    while &#40;$row = mysql_fetch_row&#40;$getAlbumId&#41;&#41; &#123;
      if &#40;str_len&#40;$row&#91;'album_id'&#93;&#41; != 3&#41; &#123;
        echo $row&#91;'album_id'&#93;;
      &#125; 
    &#125;
    wenn er keine zahl ausgibt dann poste mal deinen aktuellen code.

    Da vorher das problem einfach nur bei falschen anfhrungszeichen lag hab ich auch hier alles durchprobiert. von ' ber ` und bis zu ".
    bringt entweder ganz andere fehler oder eben wieder die selben.
    nein - das gbe keinen solchen fehler. tabellennamen und spalten werden ohne oder mit `` geschrieben, und werte mit ' ' - zahlen brauchen gar nichts.

    wenn ich allerdings das .$row[] entfernen arbeitet er das script durch ohne einen fehler auszugeben. allerdings ist in der db kein eintrag gendert worden.
    logisch - dann weiss er ja auch nicht was er updaten soll.

    aber so wie ich das verstehe wird doch in zeile
    while ($row = mysql_fetch_row($getAlbumId)) {
    festgelegt das die variable $row das umgedrehte ergebnis von $getAlbumId ist.
    dachte mir deshalb das ein $row['album_id'] dann ja doppelt gemoppelt ist, da row ja schon mit der album_id definiert wurde. oder versteht ich da was falsche
    nein nein - so liest man einfach eine mysql datenbank aus. die zeile bedeutet einfach dass im array $row alle werte der aktuellen reihe in der db kommen.


    so long

  8. #8
    Gast

    Standard

    <?php
    include 'config.php';
    error_reporting(E_ALL);
    $db_link = mysql_connect($db_host, $db_user, $db_pass);

    if(mysql_select_db($db_name)) {
    } else {

    echo "Datenbank ".$db_name." wurde nicht gefunden";

    }
    echo "Die Datenbank ".$db_name." wurde ausgewhlt";


    $selAlbumId = "SELECT `album_id` FROM `fusion_photo_albums`";
    $getAlbumId = mysql_query($selAlbumId);

    while ($row = mysql_fetch_row($getAlbumId)) {
    if (strlen($row['album_id']) != 3) {
    echo $row['album_id'];
    }
    }
    ?>
    Notice: Undefined index: album_id in /www/htdocs/hhstamm/php-files/test.php on line 19

    Notice: Undefined index: album_id in /www/htdocs/hhstamm/php-files/test.php on line 20

    Notice: Undefined index: album_id in /www/htdocs/hhstamm/php-files/test.php on line 19

    Notice: Undefined index: album_id in /www/htdocs/hhstamm/php-files/test.php on line 20

    Notice: Undefined index: album_id in /www/htdocs/hhstamm/php-files/test.php on line 19

    Notice: Undefined index: album_id in /www/htdocs/hhstamm/php-files/test.php on line 20

    mir ist aufgefallen das die anzahl der eintrge in der db gleich mit der anzahl der fehlermeldungen ist. also da ist 3 mal fehlermeldung fr zeile 19 und 3 mal fr zeile 20. und es sind 3 eintrge in der db (die sind 1,11 und 111)

    hab mal n bildausschnitt der db mit angehangen. Natrlich brauch ich das script nicht nur fr die 3 zahlen, ist nur zum probieren

    achja bevor du zhlen musst: Zeile 19 und 20 sind
    if (strlen($row['album_id']) != 3) {
    echo $row['album_id'];
    das str_len musste ich durch strlen ersetzen, da sonst ein fehler wegen unbekanntem befehl kommt. Wenn doch mal alle probleme so einfach wren
    Angehngte Grafiken Angehngte Grafiken

  9. #9
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beitrge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    so sollte es stimmen:

    Code:
    <?php
      $selAlbumId = "SELECT `album_id` FROM 'fusion_photo_albums'";
      $getAlbumId = mysql_query&#40;$selAlbumId&#41;;
    
      while &#40;$row = mysql_fetch_array&#40;$getAlbumId&#41;&#41; &#123;
        if &#40;strlen&#40;$row&#91;'album_id'&#93;&#41; != 3&#41; &#123;
          $newId = "0".$row&#91;'album_id'&#93;;
          $updAlbumId = "UPDATE `fusion_photo_albums` SET `album_id` = '$newId' WHERE `album_id` = ".$row&#91;'album_id'&#93;."";
          mysql_query&#40;$updAlbumId&#41;;
        &#125;
      &#125;
    ?>

  10. #10
    Monarch
    Gast

    Standard

    habs probiert, luft ohne fehler durch, jedoch tut sich in der db nichts.
    habs dann nochmal probiert mit echo ausgabe aber er zeigt mir immer die 111 an, auch wenn ich sie aus der db lsche...

    hatte mir das ganze vom prinzip viel leichter vorgestellt ^^

hnliche Themen

  1. Mehrere Datenstze glechzeitig mit einem Submit ndern
    Von Lachi im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 01.03.2008, 11:50
  2. Textfelder auslesen und ndern
    Von rgofi im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 15.03.2007, 09:51
  3. Selectfeld berprfen und auslesen.
    Von Gast im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 17.11.2006, 14:01
  4. Mehrere Datenstze ndern / lschen mit ARRAY
    Von brauche ARRAY HILFE im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 06.06.2006, 11:39
  5. MySQL Datenstze aktualisieren, unbekannte anzahl Datenstze
    Von Blubber im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 10.08.2005, 15:19

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhnge hochladen: Nein
  • Beitrge bearbeiten: Nein
  •